Spanning Tree Protocol is a link management protocol that provides path redundancy while preventing undesirable bridging loops in the network. For an Ethernet Layer-2 network to function properly, only one active path can exist between two stations. Multiple active paths between stations cause traffic to loop in the network. If a bridging loop exists in the network topology, it can cause broadcast and multicast frames to be duplicated, creating a traffic storm. When bridging loops occur, a bridge may see the same stations appearing on both of its interfaces. Additionally, switches may see the same stations appearing on different ports at different times. This condition confuses the frame forwarding logic. To provide path redundancy, Spanning Tree Protocol defines a tree that spans all devices in the Layer-2 network. Spanning-Tree Protocol forces all redundant data paths into a standby (blocked) state. If the network topology changes, or if the network Spanning Tree Protocol configuration changes, the spanning-tree algorithm reconfigures the spanning-tree topology and reestablishes the link by activating the standby path or putting active links into standby state. The IEEE 802.1D Standard, entitled “Media Access Control (MAC) Bridges,” defines a Spanning Tree Protocol for use in local area networks (LANs).
Bridges in an extended LAN participating in Spanning Tree Protocol gather information on other bridges in the network through observation and forwarding of STP messages. These STP messages are so-called bridge protocol data units (BPDUs). This results in selection of a unique root bridge for the stable spanning tree network topology and the removal of redundant path in the switched network by placing redundant switch ports in a blocked state. Spanning Tree Protocol operation is transparent to end stations, which are unaware of the network topology of the LAN segment to which they are being connected. Generally speaking, the root bridge generates configuration BPDUs, which other devices process and multicast out at STP-enabled ports.
A virtual LAN (VLAN) is a switched network that is logically segmented by one or more criteria without regard to the physical location of the end stations. For example, end stations might be grouped according to company departments, such as engineering or accounting rather than their physical locations. Multiple VLANs can be defined over the same network infrastructure to segment a LAN to different broadcast domains. The IEEE 802.1Q standard, entitled “Virtual Bridged Local Area Networks,” sets forth a VLAN implementation in common use today.
To implement a VLAN, ports on the same or different bridges/switches are logically grouped so that traffic is confined only to members of that group. This feature restricts broadcast, multicast, and unicast flooding traffic only to ports included in a certain VLAN. For VLANs to span multiple switches, trunk ports have to be configured on the switches to establish a trunk link to connect the switches. A trunk link carries traffic for all VLANs by identifying the originating VLAN as the frame is carried between the switches. To this end, VLAN implementations employ frame tagging—that is, frames received from an end station connected to an access port associated with a given VLAN are tagged with an identifier (VLAN ID) corresponding to that VLAN prior to transmission across a trunk link. Frame tagging allows switches and network devices to determine the VLAN to which different frames belong when the frames are transmitted across trunk links. The frames can be tagged with VLAN information according to the IEEE 802.1Q standard, or other protocols (such as the Inter-Switch Link (ISL), a proprietary trunking mechanism developed by Cisco Systems, Inc.).
The IEEE 802.1Q standard also defines a native VLAN. According to this standard, a trunk port does not tag frames that are forwarded to any port that corresponds to the native VLAN. Some vendors allow the native VLAN to be a configurable parameter for their switching/bridging devices. For example, assume for didactic purposes that a network device supports configuration of up to 64 VLANs. A network administrator can configure multiple VLANs (e.g., 1, 2, 3, 4, etc.) and assign VLAN 2 as the native VLAN. According to this example, if the network device receives a frame on a trunk port without a tag, the network device assumes that the frame belongs to the native VLAN 2 and does not tag the frame. In some network switches (such as certain Ethernet Switches offered by Cisco Systems, Inc.® of San Jose, Calif.), the native VLAN is a fixed parameter that cannot be changed. For example, the native VLAN in many Cisco switches is fixed to VLAN 1.
The fixed nature of the native VLAN on such switches can create certain interoperability problems with other network devices where the native VLAN is configurable and has not been set to VLAN 1. For didactic purposes, FIG. 6 illustrates a trunk port connecting switch 20a (having a static native VLAN 1) and network device 20d (configured with a native VLAN 225). As discussed above, a pair of trunk ports forms a connection (called a trunk link) between two network devices over which traffic from a plurality of VLANs are transmitted. Given the native VLAN configurations discussed above, without some conversion mechanism, untagged frames have different significance between switches 20a and network device 20d, presenting certain interoperability issues. As FIG. 6 illustrates, switch 20a, however, can be configured with knowledge that the native VLAN for network device 20d has been set to VLAN 225. With this knowledge, switch 20a can be configured to do the following to facilitate interoperation between the two network devices. For example, when switch 20a receives a frame 97 bearing no tag over the trunk port A from network device 20d, switch 20a tags the frame with a tag identifying VLAN 225 prior to processing. Still further, when switch 20a receives a frame 98 destined for device 20d and tagged with VLAN 225 from port C, it removes the tag prior to forwarding the frame to port D of network device 20d. Similarly, switch 20a tags unmarked frames with a VLAN 1 tag at port A prior to transmission to device 20d. As discussed in more detail below, the fixed nature of the native VLAN setting on many switches can create certain interoperability problems with other network devices relative to operation of spanning tree protocols and the processing of Bridge Protocol Data Units (BPDUs).
As to the Spanning Tree Protocol, the IEEE 802.1D standard defines a unique spanning tree instance for the entire Layer 2 network. This single spanning tree instance runs on the native VLAN, which can be used to define the paths for all VLANs. This spanning tree instance is also required for Per-VLAN Spanning Tree Plus Protocol (PVST+) VLANs in the same network. The PVST+ Protocol, a proprietary spanning tree protocol developed by Cisco Systems, Inc., allows an instance of STP to run on each VLAN. With PVST+, a root bridge and a unique STP topology is selected and configured for each VLAN. For interoperability with 802.1Q bridges/switches, the PVST+ implementation, however, requires an IEEE 802.1D common spanning tree instance for all bridges/switches. This is accomplished with bridges/switches that forward and process PVST+ BPDUs on each VLAN, as well as BPDUs associated with the common spanning tree instance on the native VLAN, all originated from the STP root bridges. Typically, the common spanning tree instance operates according to the IEEE 802.1D standard. STP root bridges for all VLANs can be physically on the same or different bridges/switches. By configuring a different root priority or port cost on different devices on the VLANs, a network administrator can decide and control at which bridges/switches and ports redundant links are blocked.
Using PVST+, bridges/switches can send or forward PVST+ BPDUs as tagged frames using a pre-determined multicast address as the destination. The IEEE 802.1D BPDUs, according to the protocol, are sent without tags. In both switches 20a and device 20d, IEEE 802.1D BPDUs are either sent or received on their respective native VLANs and do not include an IEEE 802.1Q tag. The VLAN tagging operations implemented by switch 20a on received frames, however, are also applied to the IEEE 802.1D BPDUs, causing them not to be processed. That is, as to BPDUs sourced from network device 20d, an IEEE 802.1D BPDU, which by protocol includes no tag, is tagged with VLAN 225, preventing the IEEE 802.1D BPDU from making it to higher layers of the protocol stack of switch 20a for processing. As a result, both IEEE 802.1D STP and PVST+ do not function properly to block redundant paths. This circumstance can cause flipping of entries in frame forwarding tables if there is any loop topology in the network infrastructure, and can cause affected parts of the network to become inaccessible.
In light of the foregoing, a need exists in the art for methods, apparatuses and systems directed to facilitating the interoperability between network devices having static, unchangeable native VLANs with other network devices where the native VLANs are configurable. Embodiments of the present invention substantially fulfill this need.